feat: drag and copy using alt+drag - #2738
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Builder reviewed your changes and found 1 potential issue 🟡
Review Details
Code Review Summary
PR #2738 adds Option/Alt-drag duplication for overview frames, including multi-frame selections, and tightens the editor's optimistic create/update path so concurrent duplicates are not lost. It also changes primitive creation selection semantics and forces a full preview document refresh for structural element copies. The overall approach is thoughtful: gesture cleanup is centralized, live refs avoid stale geometry, and the new unit/E2E coverage exercises frame, group, and element-copy behavior.
Risk assessment: Standard. The main concern is a multi-selection state-management issue: independent duplicate completions each focus their own newly created screen, so the final selection and camera depend on whichever request resolves last. This undermines the expected copied-group workflow and the explicit camera-stability intent. Other reviewed paths, including modifier release/cancellation, locked frames, and concurrent mutation handling, looked sound.
Key Findings
- 🟡 MEDIUM — Multi-frame alt-drag does not preserve the copied group as the final selection and may move the camera to an arbitrary clone.
🧪 Browser testing: Will run after this review (PR touches UI code)
|
Here's a visual recap of what changed: Open the full interactive recap |
There was a problem hiding this comment.
Builder reviewed your changes — no new findings
Review Details
Incremental Code Review Summary
The latest PR head was reviewed against the current full diff. The implementation adds Alt-drag copying for overview frames and multi-frame selections, updates optimistic duplicate creation to use independent promises, preserves live preview content during structural copies, and adjusts primitive selection and keyboard shortcut handling. The targeted changes remain coherent: fresh refs avoid stale geometry, event prevention is deferred until the canvas will handle the shortcut, and the gesture tests cover cancellation, frame copying, and relative placement.
Risk assessment: Standard. No genuinely new actionable issues were found in this incremental pass. The previously reported multi-frame Alt-drag selection/camera issue at MultiScreenCanvas.tsx:5228 is still present and remains open; it was intentionally not reposted. The existing gesture suite was reported as passing (31 tests), and no other regressions were identified.
Key Findings
- No new findings in this incremental review.
- Existing open feedback remains unchanged and was not duplicated.
🧪 Browser testing: Will run after this review (PR touches UI code)

No description provided.